home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Format 1994 October
/
Macformat17.cdr
/
Shareware City
/
Developers
/
xlispmac
/
src
/
README.UPD
< prev
next >
Wrap
Text File
|
1994-05-28
|
18KB
|
441 lines
05/11/94
COMMA-AT did not complain about non-lists. APPEND would hang on
circular lists. COND allowed non list clauses. (Bugs reported by
Gottfried Ira). CONCATENATE would hang on circular lists.
Removed several free() calls of obviously NULL pointers in the
unixstuf.c, dosstuff.c, and winstuff.c files. (Error found by Luke
Tierney.)
Some crashes with XLISPWIN were traced to optimization errors in
Borland C++ V3.1. Problem fixed by turning off offending optimization.
04/26/94
There was a bug involving GO's within UNWIND-PROTECT's which was fixed
by changing the mechanism that the GO target was propagated back to
the TAGBODY. Resulting code is smaller and implementation is much
cleaner. (Bug reported by Gottfried Ira)
Implementation documentation upgraded to include operation of contexts.
Typo in CATCH documentation fixed.
Fixed potential name clash in inspect.lsp.
04/16/94
Changed "forth" to "fourth" in place form definition in COMMON2.LSP.
Changed FACT.LSP so factorial function works for (FACT 0). (Fix by
Mihai Tache, moj@karla.indinf.pub.ro).
03/14/94
Bug fixed in MAP-INTO with more than three arguments. (Fix by Luke Tierney).
02/15/94
A bug was fixed in stepper.lsp.
02/06/94
A buffer was too small for filepathnames in the Unix versions. This
has been fixed by making STRMAX be MAXPATHLEN for UNIX only. Some
declarations fixed up for non-ANSI C compilers.
Changes made so XLISP will compile on DEC Alpha. (From Luke Tierney)
GENSYM will now handle numeric parts greater than 32767 on 16 bit
integer systems. (Another old bug just found, from Luke Tierney)
Addresses will now print better on some systems (Luke Tierney)
Status messages (from the ROOM function and from control-T) display
nicer, and in the latter case, display more information. In the Windows
version, control-T no longer puts up a status dialog box, and the menu
status selection now toggles a separate status window which is updated
once a second.
02/02/94
The "long standing bug" in PROGV, "fixed" 11/19/93, was only half
fixed. It's now really fixed. (Courtesy Gottfried Ira)
The implicit BLOCK in DOTIMES and DOLIST now encloses the evaluation
of the count/list argument. This allows (dotimes (i (return 'a))) to
work. (Problem pointed out by Gottfried Ira).
Fixed bug that would cause (cond ((values 1 2))) to return 1, 2, rather
than NIL. (Fix by Luke Tierney)
The loop index can now be safely used in the return expression of
DOTIMES. Before, it wasn't protected from garbage collection.
02/01/94
PP.LSP use of READ needed to be changed to handle EOF (reported by
thantos@runic.via.mind.org (Alex Williams)). Overflow during
addition/subtraction of complex integers was not handled properly
(fix by Luke Tierney).
01/29/94
The following bugs were fixed with the Windows version: Column set
wrong on newlines (reported by Alex Williams). Marked text did not
unmark when the enter key was hit and cursor was at the bottom of the
display. Copy command changed so that final newline not placed in
clipboard -- this makes the command more useful in that the last (or
only) line of pasted text can be edited.
01/03/94
DEFUN and DEFMACRO affect global values, and not local bindings (such
as with flet or macrolet). Missing unixprim.o in UNIX makefiles fixed.
CATCH, THROW, and CASE now signal errors if no arguments. These bugs
found by ira@iue.tuwien.ac.at (Gottfried Ira).
1- of max negative integer now produces correct answer when
NOOVFIXNUM is used. COMMON2.LSP changed so that APROPOS returns no
value when multiple values are compiled but packages are not
compiled. Added #ifdef MULVALS at a line in xlimage.c that should
not compile if MULVALS is not defined. Fixed documentation error in
<eofp> argument; this also changes glos.txt. These bugs were found
by kok@cs.colostate.edu (Jan Kok).
Removed reset of lposition in osflush(). Before the change, flushing
the keystroke buffer would tell the system the cursor was at the
left margin, messing up FRESH-LINE, among other functions.
xlgetcolumn() did not correctly calculate the column number of USTREAMs.
(Fix by Jan Kok).
Corrected Y-OR-N-P to read a single character. Added YES-OR-NO-P
which reads in a line of text. Both functions now work according to
Common Lisp definitions.
Error in DO, PROG, and, LET could cause garbage collection problems.
(Fix by Luke Tierney). [After making this fix, a simulation program I have
that would run a long time and then crash suddenly started working!]
An error in readme.win documentation file made created XLISPWIN.INI
files worthless.
(Final release, 12/17/93) 12/17/93
Time to let go...
(Still working on it, released on BBBBBS 2.1f) 11/19/93
Added far pointer quicksort function to MEDMEM MS-DOS versions,
allowing sorting of all sequences.
Added graphics to Windows version. Note that graphics and colors are
not refreshed if window is un-obscured.
The MODE function now returns dimensional information.
Fixed reported bugs in unixprims.c and function EVALHOOK. Allowed change
of statically allocated small FIXNUM range in xlisp.h. Fixed external
symbol initiation problem with packages. Cosmetic changes to Windows
version, and grayed Run-Proceed and Run-ReturnALevel when not at a break
level.
It never ends! Luke Tierney dropped a bunch of code off, so now READ,
READ-CHAR, READ-BYTE, and READ-LINE take the eof related arguments, and
there are new FORMAT directives O X # ? | { } ( ) [ and ].
Obscure bugs in defsetf and macroexpand fixed. Long standing bug in
xlprogv fixed. Bug involving both optional and keyword arguments fixed.
Added *READ-SUPPRESS* basically for the #+ and #- reader macros. Not
documented here.
(RELEASED ON Bitter Butter Better BBS) 11/11/93
Added INSPECT.LSP, a replacement for REPAIR.LSP. Much cleaner design.
Completed Microsoft Windows version.
(NOT RELEASED) 10/06/93
Version changed to 2.1f, for "final" version. :-)
The repair function has been revised and will now handle structures.
This venerable piece of code I wrote 18 years ago and is really showing
its age.
I've added a glossary function (glos.lsp and glos.txt) for online
documentation. This function combined with the tab key in the DOS
environment provide a pretty handy programming environment.
The C variable "true" has been changed to "s_true" to reflect on the
standard naming practice.
Added MAP-INTO and COMPLEMENT.
(NOT RELEASED) 09/26/93
Multiple values and packages features from Luke Tierney added. These
are compilation options. .LSP files updated to match (I hope!). The
entire set of functions, as described in CLtL2 have been added, some
functions in COMMON.LSP.
Added SPECIALP, MARK-AS-SPECIAL, and (in COMMON.LSP) EVAL-WHEN, DECLARE,
and PROCLAIM.
Fixed some small bugs with FLATSIZE and objects.
(NOT RELEASED) 09/20/93
Added compilation option LEXBIND for lexical binding of GO and
RETURN (Luke Tierney). Fixed ROUND to round to the nearest even.
Added comments for DEFVAR DEFCONSTANT DEFPARAMETER and DEFSTRUCT, and
fixed bug in HASH (from Jan Kok).
(NOT RELEASED) 09/16/93
Fixed keyword args so duplicate key args ignored. Fixed baktrace
of SUBRs where keyword args are used. Added :ALLOW-OTHER-KEYS. Added
Luke Tierney's *startup-functions*, *command-line*, *load-file-arguments*,
*top-level-loop*, TOP-LEVEL-LOOP, and RESET-SYSTEM.
(NOT RELEASED) 07/16/93
Added GETF, and GETF placeform for SETF. Added third "default"
argument for GET. Added PSETF. Corrected bugs in SETQ/PSETQ/SETF that
allowed an odd number of arguments with no error. Added symbol name
completion (MS-DOS), defined C constants for all special keyboard
characters. Added LIST-LENGTH. Added :INITIAL-ELEMENT and
:INITIAL-CONTENTS to MAKE-ARRAY. Added :CAPITALIZE for *PRINT-CASE*.
Added functions STRING-CAPITALIZE and NSTRING-CAPITALIZE. Added
IDENTITY as internal function, and ignore :KEY being #'IDENTITY.
Improved performance of SORT, and will also sort all sequences
(except for MEDMEM compilations in MS-DOS). Added NSUBST, NSUBST-IF,
NSUBST-IF-NOT, NSUBLIS, and fixed errors in SUBLIS and SUBST.
(NOT RELEASED) 06/21/93
Since I intend version 2.1f to be my last, I decided to to what
I should have done earlier -- make ERROR CERROR and BREAK compatible
with Common Lisp. It sure makes usage nicer. Because CERROR
uses the arguments twice, I added the ~* directive to FORMAT. I
suppose I should make PRINT do an initial newline instead of a
trailing one, but this is not a major problem since most programs
I've seen use FORMAT these days.
Latest version of GCC now handles printing of NANs properly --
XLISP source changed appropriately.
Added COUNT, COUNT-IF-NOT, POSITION, POSITION-IF-NOT, FIND, and
FIND-IF-NOT. Because of recoding of COUNT-IF, POSITION-IF, and
FIND-IF, no more code space is used than before.
Added system stack checking code (based on code supplied by
Richard Zidlicky). Code has some system dependencies, so is not
enabled for all configurations. Basic effects of the code (which
is enabled by defining STSZ to the stack size, typically done on
the compiler command line):
1. EDEPTH and ADEPTH set appropriate to size.
2. Low-water mark is checked in EQUAL, SUBST, SUBLIS, PRIN*, and READ
functions, which could cause a system stack overflow before. EVAL
is also checked, however overflow here is unlikely if EDEPTH and
ADEPTH are small enough.
3. A special garbage collector stack low-water-mark prevents the
garbage collector from running (and does a TOP-LEVEL) when it
appears that there would not be enough stack left. A check within
the garbage collector code causes a fatal error message if the
GC is attempted but the stack runs out anyway. If this low-water-mark
is set to zero, then no check is performed. This is recommended for
environments where the stack can't really run out but this feature
is desired for items 2 and 4 in this list.
4. A new function SET-STACK-MARK is used to set a stack mark that
if remaining free stack space drops below a break level will
be entered. This provides excellent means to catch runaway
recursive functions in a state that allows debugging. The argument
value is the number of bytes remaining in the stack and is limited
at the low end to be greater than the internal low-water mark
and at the high end to be somewhat less than the free memory at
the time the function is executed. SET-STACK-MARK returns the
previous value.
Installed stack checking for Microsoft C, Borland (Turbo) C,
Top Speed C, and GCC.
Fixed error in DEFSETF.
06/17/93
(NOT RELEASED)
Bug fixed so LOOP cannot hang system.
01/21/92
(NOT RELEASED)
Unbound indicator is now not interned. When printed (only possible with
the debugging function GENERIC) shows as #<Unbound>. The former
constant *unbound* is now not defined. FMAKUNBOUND is now an subr
rather than an expr.
12/18/92
(NOT RELEASED)
MS-DOS version has improved line editing (insert mode, l/r arrow,
delete) with recall of 20 previous lines (up and down arrow keys).
Tab key now ignored. Line length limited to physical line. Invalid
keys cause "beep" rather than error message and abort of line.
MS-DOS version calculates "run time" as real time less time spend
waiting for keyboard input or doing SYSTEM function. This is a
reasonable aproximation which ignores file I/O. Runtime is set to
zero at startup.
Time to garbage collect is now recorded, and can be displayed with
the ROOM function.
ZORTSTUF.C and GCCSTUFF.C merged into DOSSTUFF.C. Support for
Metaware High-C + PharLap dropped because of high cost of product.
11/30/92
Improved complex number code by Hume Smith installed.
11-03-92
80386 version changed (in gccstuff.c) so that control-Z character in
ascii files are treated as End-Of-File rather than causing an error
message. Error message "Unexpected EOF" changed to "EOF reached before
expression end."
09-9-92
Version number changed to 2.1e.
MSDOS versions STUFF files altered to allow characters with high
bit set (international) to be entered. The compilation option ASCII8,
defined by default, allows these extended characters to be used
throughtout XLISP-PLUS. The function ALPHA-CHAR-P has been added
since BOTH-CASE-P can no longer be used to indicate characters that
are alphabetic. The function ALPHANUMERICP, which has always existed,
has been added to the documentation where it was strangely missing.
The 80386 executable has been compiled with the most recent version
of DJ Delorie's GO32 (1.08) and Ralf Brown's SPAWNO (4.1) which seems
to have corrected a number of virtual memory management problems.
It should be noted that GO32 creates its swap file in the root
directory of drive C:. To move it elsewhere, specify the directory
in a "SET GO32TMP=" DOS command.
Documentation revised.
STATUS REPORT:
The compiler I've been working on is too buggy for distribution
at this time, and I don't have the time at the moment to work on it.
Let me say that it integrates real easily in the code (the #defines
for it are already here), and the applications that work have been
4-6 times faster.
The Windows version is on hold as well. The current version can be
compiled using Borland C, with slight mods to the keyboard routines.
Performance however is not good because of the 80286 protected mode
operation and the continual load of selectors. Some day when I get
Windows NT, I'll get back to this. Meanwhile I'll stick to DOS and
the djgcc compiler.
Tom Almy
tom.almy@tek.com
07-09-92
Operation of setf changed to allow a *setf-lambda* expression as an
alternative to the *setf* expression. This new format is eval'ed
twice allowing defsetf to work in a fashion compatible with Common
Lisp.
Added the #+ and #- reader macros and the *features* global variable.
Init.lsp defines the only feature ":xlisp".
Added RATIONAL, because I found out the algorithm to do it. Believe
me, it isn't easy! I also modified ratio arithmetic so that if a
value cannot be exactly represented as a ratio of fixnums the result
is expressed as a flonum. This affects + - * / REM MOD 1+ and 1-.
Fixed + - * 1+ 1- so that integer/integer-complex operations that
overflow become float/float-complex. Fixed LCM to eliminate overflow
in cases where least common multiple would fit in an integer, and
give an error when it would not.
05-28-92
In STEPPER.LSP, fixed bug stepping through RETURN, and display in
most cases of RETURN, RETURN-FROM, GO, and THROW. Also fixed bug so
that Enter key can be used for "Newline" command.
Fixed bug in printing of closures, MS-DOS medium memory model.
04-13-92
Fixed two reported errors in unixprim.c.
03-23-92
No change to version number -- minor upgrade
Bug fix in common.lsp (function copy-alist), queens2.lsp; new
makefiles for SPARC and RS6000; UNIX support improved--file
redirection, long file names, and unixprim.c.
"-b" command switch for "batch" operation -- uncaught errors cause
xlisp to exit to OS.
03-02-92
Fixed "fatal" error in function aref.
02-13-92
New version number 2.1d, and name changed to XLISP-PLUS to aid in
differentiation.
Many compilation options have been removed to provide more consistant
code. There have been bug fixes in the xlobj (problems with 32 bit
compilers, and special variable binding), gccstuff, and unixstuf
(SYS V support) files. A bug causing (type-of 'x) to return CONS has
been fixed
Documentation is overhauled, and is somewhat simpler because of the fewer
compilation variations.
New features are rational numbers and readtable-case.
Added Amiga support.
11-15-91
No change to the version number -- this is a maintenance upgrade.
Three additional bugs have been identified and fixed. The first corrects
a problem in typep that caused the type NUMBER to never match. The
second implements *dos-input* for the 80386 XLISP, and corrects a minor
problem with dribble in that version.
10-22-91
No change to the version number -- this is a maintenance upgrade.
There have been two bug fixes made to this version. The first corrects
problems with save/restore and binary files when the 80386 XLISP is used
and the second corrects problems with string streams during garbage
collections that print messages.
In addition a new version of go32, DJ Delorie's DOS extender, is being used.
This one is VCPI compatible as well as XMS compatible (still not DPMI).
It is also possible to use it without an 80387 using his new 80387 emulator.
Put the file emu387 in the directory with your binaries (lets say "c:\bin")
and then set the environment variable: "set go32=emu c:/bin/emu387" -- note
the forward slashes. XLISP will now use the 80387 emulator, even if an 80387
is present.
Tom Almy
toma@sail.labs.tek.com
8-19-91
This archive contains a copy of the source file dldmem.c with a bug fixed.
The version number has been revised to 2.1c. Please change file xlisp.c to
match.
Also included are new executable files. Please delete any existing
80386 XLISP executables because of distribution licensing problems and
use this executable which has been compiled with the GNU C compiler and
uses DJ Delorie's DOS extender, go32. While this version does not run in
VCPI or DPMI environments, it does offer virtual memory (swaps to disk)
and will spawn a DOS shell with almost the entire lower memory free (I've
incorporated Ralf Brown's SPAWNO into go32!).
Tom Almy
toma@sail.labs.tek.com